jjzjj

CreateProcessWithLogonW 和 AssignProcessToJobObject

全部标签

c - 为什么 AssignProcessToJobObject 在 XP 上失败并出现拒绝访问错误?

我有以下代码:#include#include#include#pragmacomment(lib,"shlwapi.lib")int__cdeclwmain(intargc,PWSTRargv[]){HANDLEJob(CreateJobObject(NULL,NULL));if(!Job){wprintf(L"Couldnotcreatejobobject,error%d\n",GetLastError());return0;}HANDLEIOPort(CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,1));if(!IOPort

CreateProcessWithLogonW 和 AssignProcessToJobObject

我有一个Windows服务(在WinXPSP2下),在LocalSystem帐户下运行,它使用CreateProcessWithLogonW启动进程。为了清理子进程,我尝试使用作业对象和TerminateJobObject。MSDN声明作业句柄必须具有JOB_OBJECT_ASSIGN_PROCESS访问权限,因为它是通过CreateJobObject创建的。进程句柄必须具有PROCESS_SET_QUOTA和PROCESS_TERMINATE权限。我认为它有它们,因为TerminateProcess和SetProcessWorkingSetSize都没有错误地返回。但是,Assign

windows - 使用 CreateProcessWithLogonW 从服务启动的进程立即终止

在测试框架中,进程A必须使用CreateProcessWithLogonWAPI在不同的用户凭据(例如,_limited_user)下启动进程B。lpStartupInfo->lpDesktop为NULL,因此进程B应该与进程A在相同的桌面和窗口站中运行。当进程A手动启动时一切正常(作为_glagolig)。但是当进程A由测试框架服务(在指定测试框架的用户帐户_test_framework下运行)启动时,它不起作用。CreateProcessWithLogonW返回成功,但进程B无法执行任何工作。它立即终止显然是因为它的conhost.exe无法初始化user32.dll并返回0xC0

c++ - 在调试器下运行时,AssignProcessToJobObject 失败并出现 "Access Denied"错误

您执行AssignProcessToJobObject并失败并显示“拒绝访问”,但仅当您在调试器中运行时。这是为什么呢? 最佳答案 这个让我困惑了大约30分钟。首先,您可能需要在应用中嵌入UAClist(assuggestedhere)。像这样的:其次(这是我坚持的一点),当您在调试器下运行应用程序时,它会在作业对象中创建您的进程。在您将其分配给您的工作之前,您的子进程需要能够脱离哪个。所以(duh),您需要在CreateProcess的标志中指定CREATE_BREAKAWAY_FROM_JOB)。如果您没有在调试器下运行,或者您